package reflect;
/**
 * 使用反射机制实例化对象
 * 语法:
 * Object o = cls.newInstance();
 * 是我们获取对象的最终目标
 */
public class ReflectDemo2 {
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        Person p = new Person();
        System.out.println(p);

        //1.获取对应的类对象
        Class cls = Class.forName("reflect.Person");
        //2.通过类对象的newInstance()方法调用Person类的无参构造器来进行实例化
        Object o = cls.newInstance(); //new Person(); //这里，cls.newInstance()可以表示任何一个类，所以用Object接收
        System.out.println(o);

        //3. 注意：如果一个类，它没有无参的、公开的构造器，那就不能这样实例化，比如InputFileStream
    }
}
